<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>RaftLib: PortInfo Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">RaftLib
   &#160;<span id="projectnumber">0.3a</span>
   </div>
   <div id="projectbrief">C++ Stream Processing Template Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="struct_port_info-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">PortInfo Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for PortInfo:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="struct_port_info__coll__graph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ada6f27ee68c0d489ad5a8ef41a990628"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada6f27ee68c0d489ad5a8ef41a990628"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>PortInfo</b> (const std::type_info &amp;the_type)</td></tr>
<tr class="separator:ada6f27ee68c0d489ad5a8ef41a990628"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a74d623dea1deab1d26920ece808dff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a74d623dea1deab1d26920ece808dff"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>PortInfo</b> (const std::type_info &amp;the_type, void *const ptr, const std::size_t nitems, const std::size_t start_index)</td></tr>
<tr class="separator:a8a74d623dea1deab1d26920ece808dff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8756457c158ca06d189b08b4b8fe3a12"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8756457c158ca06d189b08b4b8fe3a12"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>PortInfo</b> (const <a class="el" href="struct_port_info.html">PortInfo</a> &amp;other)</td></tr>
<tr class="separator:a8756457c158ca06d189b08b4b8fe3a12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36e5aca1b7b20aace809490cebbc2d72"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_port_info.html#a36e5aca1b7b20aace809490cebbc2d72">~PortInfo</a> ()</td></tr>
<tr class="separator:a36e5aca1b7b20aace809490cebbc2d72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a483d162fbe356e07381c6c5cfccb4f48"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_f_i_f_o.html">FIFO</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_port_info.html#a483d162fbe356e07381c6c5cfccb4f48">getFIFO</a> ()</td></tr>
<tr class="separator:a483d162fbe356e07381c6c5cfccb4f48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43a57cd624dcc44ccd9dcaba1d07a000"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_port_info.html#a43a57cd624dcc44ccd9dcaba1d07a000">setFIFO</a> (<a class="el" href="class_f_i_f_o.html">FIFO</a> *const in)</td></tr>
<tr class="separator:a43a57cd624dcc44ccd9dcaba1d07a000"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:af8148dcb4b8e6d355dbce4de10cc10cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8148dcb4b8e6d355dbce4de10cc10cd"></a>
<a class="el" href="class_f_i_f_o.html">FIFO</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>fifo_a</b> = nullptr</td></tr>
<tr class="separator:af8148dcb4b8e6d355dbce4de10cc10cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a071d6f3662fd14dc6b3d12913eecd4ad"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a071d6f3662fd14dc6b3d12913eecd4ad"></a>
<a class="el" href="class_f_i_f_o.html">FIFO</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>fifo_b</b> = nullptr</td></tr>
<tr class="separator:a071d6f3662fd14dc6b3d12913eecd4ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a669818f0fde1da7b4a294c46e08d5980"><td class="memItemLeft" align="right" valign="top">std::type_index&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_port_info.html#a669818f0fde1da7b4a294c46e08d5980">type</a></td></tr>
<tr class="separator:a669818f0fde1da7b4a294c46e08d5980"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a714592b5ab1fa47b599903639b102a66"><td class="memItemLeft" align="right" valign="top">std::map&lt; Type::RingBufferType, instr_map_t * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_port_info.html#a714592b5ab1fa47b599903639b102a66">const_map</a></td></tr>
<tr class="separator:a714592b5ab1fa47b599903639b102a66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b7e8758b84288a4378233251252be77"><td class="memItemLeft" align="right" valign="top">split_factory_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_port_info.html#a6b7e8758b84288a4378233251252be77">split_func</a> = nullptr</td></tr>
<tr class="separator:a6b7e8758b84288a4378233251252be77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79c530d0df178e81f8ced267162463ba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79c530d0df178e81f8ced267162463ba"></a>
join_factory_t&#160;</td><td class="memItemRight" valign="bottom"><b>join_func</b> = nullptr</td></tr>
<tr class="separator:a79c530d0df178e81f8ced267162463ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52680ae480484d347333615eb2100633"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52680ae480484d347333615eb2100633"></a>
<a class="el" href="classraft_1_1kernel.html">raft::kernel</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>my_kernel</b> = nullptr</td></tr>
<tr class="separator:a52680ae480484d347333615eb2100633"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52b0d512d88e2a2ca9efc2e6d3195526"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52b0d512d88e2a2ca9efc2e6d3195526"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>my_name</b> = &quot;&quot;</td></tr>
<tr class="separator:a52b0d512d88e2a2ca9efc2e6d3195526"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68948477f69bccb9a273a02eaae782d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a68948477f69bccb9a273a02eaae782d4"></a>
<a class="el" href="classraft_1_1kernel.html">raft::kernel</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>other_kernel</b> = nullptr</td></tr>
<tr class="separator:a68948477f69bccb9a273a02eaae782d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a51ce33a630378cea7ef141efd41b95"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a51ce33a630378cea7ef141efd41b95"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>other_name</b> = &quot;&quot;</td></tr>
<tr class="separator:a5a51ce33a630378cea7ef141efd41b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5da81ef07f28858445aa768700948cf2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_port_info.html#a5da81ef07f28858445aa768700948cf2">use_my_allocator</a> = false</td></tr>
<tr class="separator:a5da81ef07f28858445aa768700948cf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab63be643334befc42faef10a88af0f43"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab63be643334befc42faef10a88af0f43"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>out_of_order</b> = false</td></tr>
<tr class="separator:ab63be643334befc42faef10a88af0f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18efecff2a108ef02f05e1ba140d8b07"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a18efecff2a108ef02f05e1ba140d8b07"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>existing_buffer</b> = nullptr</td></tr>
<tr class="separator:a18efecff2a108ef02f05e1ba140d8b07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66ca647fbbb03cc60a7058c98407a26b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66ca647fbbb03cc60a7058c98407a26b"></a>
std::size_t&#160;</td><td class="memItemRight" valign="bottom"><b>nitems</b> = 0</td></tr>
<tr class="separator:a66ca647fbbb03cc60a7058c98407a26b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa21049cabf3bcc11580f05c247e7e5b0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa21049cabf3bcc11580f05c247e7e5b0"></a>
std::size_t&#160;</td><td class="memItemRight" valign="bottom"><b>start_index</b> = 0</td></tr>
<tr class="separator:aa21049cabf3bcc11580f05c247e7e5b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3265b4628f68dc00a0c43f6fade694ca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3265b4628f68dc00a0c43f6fade694ca"></a>
std::size_t&#160;</td><td class="memItemRight" valign="bottom"><b>fixed_buffer_size</b> = 0</td></tr>
<tr class="separator:a3265b4628f68dc00a0c43f6fade694ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a36e5aca1b7b20aace809490cebbc2d72"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">PortInfo::~PortInfo </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>alloc delete fifo object </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a483d162fbe356e07381c6c5cfccb4f48"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_f_i_f_o.html">FIFO</a> * PortInfo::getFIFO </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>getFIFO - call this function to get a <a class="el" href="class_f_i_f_o.html">FIFO</a>, lock free but checks to make sure an update isn't occuring. The ptr returned will be fine to use even if an update occurs while the ptr is in use since it won't be deleted from the receiving end until the <a class="el" href="class_f_i_f_o.html">FIFO</a> is fully emptied. </p><dl class="section return"><dt>Returns</dt><dd>FIFO* </dd></dl>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 0 -->
</div>
</div>
</p>

</div>
</div>
<a class="anchor" id="a43a57cd624dcc44ccd9dcaba1d07a000"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PortInfo::setFIFO </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_f_i_f_o.html">FIFO</a> *const&#160;</td>
          <td class="paramname"><em>in</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>setFIFO - call this funciton to set a <a class="el" href="class_f_i_f_o.html">FIFO</a>, updates both pointers at the same time as opposed to doing it manually </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in</td><td>- valid FIFO*, must not be nullptr </td></tr>
  </table>
  </dd>
</dl>

<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 1 -->
</div>
</div>
</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a714592b5ab1fa47b599903639b102a66"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::map&lt; Type::RingBufferType , instr_map_t* &gt; PortInfo::const_map</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>const_map - stores "builder" objects for each of the currenty implemented ring buffer types so that when the mapper is allocating ring buffers it may allocate one with the proper type. The first key is self explanatory for the most part, storing the ring buffer type. The second internal map key is "instrumented" vs. not. </p>

</div>
</div>
<a class="anchor" id="a6b7e8758b84288a4378233251252be77"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">split_factory_t PortInfo::split_func = nullptr</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>NOTE: These are allocated by the run-time but not destroyed unless they're used...they'll of course be destroyed upon program termination. </p>

</div>
</div>
<a class="anchor" id="a669818f0fde1da7b4a294c46e08d5980"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::type_index PortInfo::type</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the type of the port. regardless of if the buffer itself is impplemented or not. </p>

</div>
</div>
<a class="anchor" id="a5da81ef07f28858445aa768700948cf2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool PortInfo::use_my_allocator = false</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>runtime settings </p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following files:<ul>
<li><a class="el" href="port__info_8hpp_source.html">port_info.hpp</a></li>
<li>port_info.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Oct 12 2015 12:16:50 for RaftLib by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>
